package model;

import javax.swing.table.AbstractTableModel;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

/**
 * Autor: Robert Wołos
 * Date: 15.08.13
 */

public class WorkerTableModel extends AbstractTableModel {
    private String[] columnNames;
    private ArrayList<Pracownik> listaWierszyZPracownikami;

    public WorkerTableModel() {
        columnNames = new String[]{"Imię", "Nazwisko", "Data urodzenia"};
        listaWierszyZPracownikami = new ArrayList<Pracownik>();
    }

    public void dodajPracownika(Pracownik pracownik) {
        listaWierszyZPracownikami.add(pracownik);
        fireTableDataChanged();     // metoda odswiezajaca widok tabelki
    }

    public void usunPracownika(int numerwiersza) {
        listaWierszyZPracownikami.remove(numerwiersza);
        fireTableDataChanged();
    }

    public void usunAllPracownikow() {
        listaWierszyZPracownikami.clear();
        fireTableDataChanged(); // odswierzanie widoku
    }

    @Override
    public int getRowCount() {
        return listaWierszyZPracownikami.size();
    }

    @Override
    public int getColumnCount() {
        return columnNames.length;
    }

    @Override
    public String getColumnName(int column) {
        return columnNames[column];
    }

    public ArrayList<Pracownik> getListaWierszyZPracownikami() {
        return listaWierszyZPracownikami;
    }

    public void setListaWierszyZPracownikami(ArrayList<Pracownik> listaWierszyZPracownikami){
        this.listaWierszyZPracownikami = listaWierszyZPracownikami;
        fireTableDataChanged();
    }

    public boolean czyPracownikIstnieje(String imie, String nazwisko){
        for(Pracownik pracownik : listaWierszyZPracownikami) {
            if(imie.equals(pracownik.getImie()) && nazwisko.equals(pracownik.getNazwisko()) )
                return true;
        }
        return false;
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        switch (columnIndex) {
            case 0:
                return listaWierszyZPracownikami.get(rowIndex).getImie();
            case 1:
                return listaWierszyZPracownikami.get(rowIndex).getNazwisko();
            case 2:
                return listaWierszyZPracownikami.get(rowIndex).getDataUrodzeniaString();
            default:
                return "brak";
        }
    }
}
